let fs = require('fs')

// 所有数据
exports.find = function (callback) {
    fs.readFile('./public/json/data.json', 'utf8', function (err, data) {
        if (err) {
            return callback(err)
        }
        callback(null, JSON.parse(data))
    })
}

// 查询单个学生
exports.oneFind = function (index, callback) {
    fs.readFile('./public/json/data.json', "utf8", function (err, data) {
        if (err) {
            return callback(err)
        }
        let allData = JSON.parse(data)
        index.index = Number(index.index)
        let changeData = allData.findIndex(function (item) {
            return item.index === index.index
        })
        callback(null, allData[changeData])
    })
}

// 添加
exports.add = function (addData, callback) {
    fs.readFile('./public/json/data.json', "utf8", function (err, data) {
        if (err) {
            return callback(err)
        }
        let allData = JSON.parse(data)
        addData.index = allData.length + 1
        addData.gender = Number(addData.gender)
        allData.push(addData)
        allData = JSON.stringify(allData)
        fs.writeFile('./public/json/data.json', allData, function (err) {
            if (err) {
                return callback(err)
            }
        })
    })
}

// 更改数据
exports.change = function (changeData, callback) {
    fs.readFile('./public/json/data.json', "utf8", function (err, data) {
        if (err) {
            return callback(err)
        }
        let allData = JSON.parse(data)
        changeData.index = Number(changeData.index)
        let changeIndex = allData.findIndex(function (item) {
            return item.index === changeData.index
        })
        changeData.index = Number(changeData.index)
        for (let key in changeData) {
            allData[changeIndex][key] = changeData[key]
        }
        allData = JSON.stringify(allData)
        fs.writeFile('./public/json/data.json', allData, function (err) {
            if (err) {
                return callback(err)
            }
        })
    })
}

// 删除
exports.delData = function (index, callback) {
    fs.readFile('./public/json/data.json', "utf8", function (err, data) {
        if (err) {
            return callback(err)
        }
        let allData = JSON.parse(data)
        index.index = Number(index.index)
        let delId = allData.findIndex(function (item) {
            return item.index === index.index
        })
        allData.splice(delId, 1)
        // 重新编号
        let i = 0
        for (let key in allData) {
            allData[key].index = ++i
        }
        allData=JSON.stringify(allData)
        fs.writeFile('./public/json/data.json',allData,function (err){
            callback(err)
        })
    })
}